學習來源: CodeData - MySQL 超新手入門(11)Views
-「View」元件是一種「虛擬表格」,使用起來就像是一個表,可以 用來保存一段你指定的查詢敘述
不論是為了查詢或維護,如果你很常需要使用到同一個查詢敘述,你就可以考慮建立一個View元件把這個查詢敘述儲存起來,語法:sql CREATE VIEW View名稱 AS SELECT ... FROM ... WHERE ...
CREATE OR REPLACE VIEW View名稱 AS
SELECT 新的欄位, ...
FROM ...
DESC View名稱
(「DESCRIBE」or「DESC」): 查詢 View 元件中會傳回哪些欄位的資料CREATE OR REPLACE VIEW View名稱
(欄位新名稱1, 欄位新名稱2)
AS
SELECT co.Name, ci.Name ...
ALTER VIEW View名稱
(新欄位名稱, 欄位1, 欄位2, 欄位3)
AS 新欄位, 欄位1, 欄位2, 欄位3
FROM ...
CREATE OR REPLACE VIEW
會建立新的 View「DROP VIEW」敘述加入「IF EXISTS」,這樣就可以防止產生View元件不存在的錯誤訊息
DROP VIEW IF EXISTS CountryMax
假設sql CREATE VIEW cmdev.EmpDept30View AS SELECT empno, ename, job, manager, hiredate, salary, comm FROM cmdev.emp WHERE deptno = 30
UPDATE EmpDept30View
SET comm = 600
WHERE empno = 30
INSERT INTO EmpDept30View
VALUES (9001, 'SIMON', 'SALESMAN', 7698, '2000-04-01', 1000, 250)
DELETE FROM EmpDept30View WHERE empno = 9001
CREATE VIEW cmdev.EmpDept30View AS
SELECT empno, ename, job, manager, hiredate, salary, comm
FROM cmdev.emp
WHERE deptno = 30
WITH [CASCADE | LOCAL] CHECK OPTION
如果不小心刪除「!EmpSalaryView」這個View元件,執行查詢「EmpDept20View」的時候,就會產生警告訊息
CHECK TABLE 表格 或 View名稱
,可以發現 EmpDept20View是有問題的 ViewSELECT TABLE_SCHEMA, TABLE_NAME, VIEW_DEFINITION, CHECK_OPTION, IS_UPDATABLE
FROM information_schema,VIEWS